package com.demo.core.dao.base.support;

import com.demo.core.model.support.GeneralExecuteModel;

/**
 * 适用于模型作为参数的分页检索参数接口
 * 该接口解决模型作为参数时,分页参数对象无法传入到Dao层
 * 在分页作为低耦合度和低侵入性考虑
 * 一个Dao(Service)执行指定方法,并且以模型对象作为检索参数时,
 * 分页对象SearchArgumentSupport将无法传入到SQL执行层.
 * 模型实现该接口则可以完成该问题
 * 当一个Dao执行指定方法,但使用Map作为检索参数时,不存在上述问题。
 * PageCoreDaoSupport<T, PK extends java.io.Serializable>对象将自动将分页参数对象放入到参数Map中。
 * 
 * @author ryuu.kk
 *
 */
public interface SearchArgumentAware {

	/**
	 * 取得分页参数
	 * @return SearchArgumentSupport
	 */
	SearchArgumentSupport getPageSupport();
	
	/**
	 * 设置分页参数
	 * @param args 分页参数
	 */
	void setPageSupport(SearchArgumentSupport args);
	
	/**
	 * 设置执行模型
	 * @param model 执行模型
	 */
	void setModel(GeneralExecuteModel<?> model);
	
	/**
	 * 取得执行模型
	 * @return 执行模型
	 */
	GeneralExecuteModel<?> getModel();
}
